/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.util.*;
import modelo.IEmpleado;
import modelo.personas;
import modelo.IEmpleadoModel;
import vista.IEmpleadoView;
/**
 *
 * @author LEONIC
 */
public class EmpleadoController implements IEmpleadoController{

    private IEmpleadoModel model;
    private List<IEmpleadoView> views=new ArrayList<IEmpleadoView>();

    public void setup(IEmpleadoModel model, List<IEmpleadoView> views) {
        setModel(model);
        addViews(views);
        model.setController(this);

    }

    public void start() {
        for(IEmpleadoView view:views)
            view.display();
    }

    private void addViews(List<IEmpleadoView> views){
        for(IEmpleadoView view:views)
            addView(view);
    }
    public void addView(IEmpleadoView view) {
        view.setModel(model);
        view.setController(this);
        views.add(view);
    }

    public void removeView(IEmpleadoView view) {
        views.remove(view);
    }

    public IEmpleadoModel getModel() {
        return model;
    }

    public void setModel(IEmpleadoModel model) {
        this.model=model;
    }

    public void actualizaEmpleadoGesture(String dni, String nombre, double salario, String tarea, String rol, boolean empleado, int codTienda, String usuario, String password, double pluses) {
        IEmpleado emp=new personas(dni,nombre,salario,tarea,rol,empleado,codTienda,usuario,password,pluses);
        getModel().actualizarEmpleado(emp);
    }

    public void borraEmpleadoGesture(String dni) {
        IEmpleado empleado=new personas(dni);
        getModel().eliminarEmpleado(empleado);
    }



    public void fireDataModelChanged() {
        for (IEmpleadoView view : views) {
            view.dataModelChanged();
        }
    }

    public List<IEmpleadoView> getViews(){
        return this.views;
    }

}
